.TH MSTFLINT "1" "March 2020" "mstflint" "User Commands"
.SH NAME
mstflint \- Flash Interface
.SH DESCRIPTION
NAME
mstflint \- Flash Interface
.SH
SYNOPSIS
.IP
mstflint [OPTIONS] <command> [Parameters]
.IP
[\-d|\-\-device <device>] [\-i|\-\-image <image>] [\-\-latest_fw] [\-\-ir] [\-h|\-\-help] [\-\-hh]
[\-y|\-\-yes] [\-\-no] [\-\-guid <GUID>] [\-\-guids <GUIDS...>] [\-\-mac <MAC>]
[\-\-macs <MACs...>] [\-\-uid <UID>] [\-\-blank_guids] [\-\-clear_semaphore] [\-\-qq]
[\-\-low_cpu] [\-\-flashed_version] [\-\-nofs] [\-\-allow_rom_change]
[\-\-override_cache_replacement] [\-\-no_flash_verify] [\-\-use_fw] [\-s|\-\-silent]
[\-\-vsd <string>] [\-\-use_image_ps] [\-\-use_image_guids] [\-\-use_image_rom]
[\-\-use_dev_rom] [\-\-ignore_dev_data] [\-\-no_fw_ctrl] [\-\-dual_image] [\-\-striped_image]
[\-\-banks <bank>] [\-\-log <log_file>]
[\-\-flash_params <type, log2size, num_of_flashes>] [\-v|\-\-version]
[\-\-private_key <key_file>] [\-\-key_uuid <uuid_file>] [\-\-private_key2 <key_file>]
[\-\-hmac_key <hmac_key>] [\-\-key_uuid2 <uuid_file>]
.PP
DESCRIPTION
.IP
flint is a FW (firmware) burning and flash memory operations tool for Mellanox Infiniband
HCAs,Ethernet NIC cards, and switch devices.
.SH
OPTIONS
.TP
\fB\-d\fR|\-\-device <device>
Device flash is connected to.
Commands affected: all
.TP
\fB\-i\fR|\-\-image <image>
Binary image file.
Commands affected: burn, verify
.TP
\fB\-\-latest_fw\fR
: Commands affected: burn
.TP
\fB\-\-ir\fR
: Commands affected: burn
.TP
\fB\-h\fR|\-\-help
Prints this message and exits
.TP
\fB\-\-hh\fR
Prints extended command help
.TP
\fB\-y\fR|\-\-yes
Non interactive mode \- assume answer "yes" to
all questions.
Commands affected: all
.TP
\fB\-\-no\fR
Non interactive mode \- assume answer "no" to
all questions.
Commands affected: all
.TP
\fB\-\-guid\fR <GUID>
GUID base value. 4 GUIDs are automatically
assigned to the following values:
.TP
guid
\-> node GUID
.TP
guid+1 \-> port1
guid+2 \-> port2
guid+3 \-> system image GUID.
.TP
Note: port2 guid will be assigned even for a
single port HCA \- The HCA ignores this
value.
.IP
Commands affected: burn, sg
.TP
\fB\-\-guids\fR <GUIDS...>
4 GUIDs must be specified here.
The specified GUIDs are assigned to the
following fields, respectively:
node, port1, port2 and system image GUID.
.TP
Note: port2 guid must be specified even for
a single port HCA \- The HCA ignores this
value.
It can be set to 0x0.
.IP
Commands affected: burn, sg
.TP
\fB\-\-mac\fR <MAC>
MAC address base value. 2 MACs are
automatically assigned to the following
values:
.TP
mac
\-> port1
.TP
mac+1
\-> port2
.IP
Commands affected: burn, sg
.TP
\fB\-\-macs\fR <MACs...>
2 MACs must be specified here.
The specified MACs are assigned to port1,
port2, respectively.
Commands affected: burn, sg
.TP
Note: \fB\-mac\fR/\-macs flags are applicable only
for Mellanox
.IP
Technologies ethernet products.
.TP
\fB\-\-uid\fR <UID>
ConnectIB/SwitchIB only. Derive and set the
device UIDs (GUIDs, MACs, WWNs).
UIDs are derived from the given base UID
according to Mellanox Methodology
Commands affected: burn, sg
.TP
\fB\-\-blank_guids\fR
Burn the image with blank GUIDs and MACs
(where applicable). These values can be set
later using the "sg" command (see details
below).
.IP
Commands affected: burn
.TP
\fB\-\-clear_semaphore\fR
Force clear the flash semaphore on the
device.
No command is allowed when this flag is
used.
NOTE: May result in system instability or
flash corruption if the device or another
application is currently using the flash.
Exercise caution.
.TP
\fB\-\-qq\fR
Run a quick query. When specified, flint will
not perform full image integrity checks
during the query operation. This may shorten
execution time when running over slow
interfaces (e.g., I2C, MTUSB\-1).
Commands affected: query
.TP
\fB\-\-low_cpu\fR
: When specified, cpu usage will be reduced.
Run time might be increased
Commands affected: query
.TP
\fB\-\-flashed_version\fR
: When specified, only flashed fw version is
fetched
Commands affected: query
.TP
\fB\-\-nofs\fR
Burn image in a non failsafe manner.
.TP
\fB\-\-allow_rom_change\fR
Allow burning/removing a ROM to/from FW image
when product version is present.
Use only if you know what you are doing
.TP
\fB\-\-override_cache_replacement\fR
On SwitchX/ConnectIB devices:
Allow accessing the flash even if the cache
replacement mode is enabled.
NOTE: This flag is intended for advanced
users only.
Running in this mode may cause the firmware
to hang.
.TP
\fB\-\-no_flash_verify\fR
Do not verify each write on the flash.
.TP
\fB\-\-use_fw\fR
Flash access will be done using FW
(ConnectX\-3/ConnectX\-3Pro only).
.TP
\fB\-s\fR|\-\-silent
Do not print burn progress flyer.
Commands affected: burn
.TP
\fB\-\-vsd\fR <string>
Write this string, of up to 208 characters,
to VSD when burn.
.TP
\fB\-\-use_image_ps\fR
Burn vsd as appears in the given image \- do
not keep existing VSD on flash.
Commands affected: burn
.TP
\fB\-\-use_image_guids\fR
Burn (guids/macs) as appears in the given
image.
Commands affected: burn
.TP
\fB\-\-use_image_rom\fR
Do not save the ROM which exists in the
device.
Commands affected: burn
.TP
\fB\-\-use_dev_rom\fR
Save the ROM which exists in the device.
Commands affected: burn
.TP
\fB\-\-ignore_dev_data\fR
Do not attempt to take device data sections
from device(sections will be taken from the
image. FS3 Only).
Commands affected: burn
.TP
\fB\-\-no_fw_ctrl\fR
Do not attempt to work with the FW Ctrl
update commands
.TP
\fB\-\-dual_image\fR
Make the burn process burn two images on
flash (previously default algorithm).
Current default failsafe burn process burns
a single image (in alternating locations).
Commands affected: burn
.TP
\fB\-\-striped_image\fR
Use this flag to indicate that the given
image file is in a "striped image" format.
Commands affected: query verify
.TP
\fB\-\-banks\fR <bank>
Set the number of attached flash devices
(banks)
.TP
\fB\-\-log\fR <log_file>
Print the burning status to the specified log
file
.HP
\fB\-\-flash_params\fR <type, log2size,
.TP
num_of_flashes>
Use the given parameters to access the flash
.TP
instead of reading them from the flash.
Supported parameters:
Type: The type of the flash, such
as:M25PXxx, M25Pxx, N25Q0XX, SST25VFxx,
W25QxxBV, W25Xxx, W25Qxxx, W25Qxxx,
AT25DFxxx, S25FLXXXP, S25FL11xx, MX25L16xxx,
MX25Lxxx, S25FLxxx, IS25LPxxx.
log2size: The log2 of the flash
size.num_of_flashes: the number of the
flashes connected to the device.
.TP
\fB\-v\fR|\-\-version
Version info.
.TP
\fB\-\-private_key\fR <key_file>
path to PEM formatted private key to be used
by the sign command
.TP
\fB\-\-key_uuid\fR <uuid_file>
UUID matching the given private key to be
used by the sign command
.TP
\fB\-\-private_key2\fR <key_file>
path to PEM formatted private key to be used
by the sign command
.TP
\fB\-\-hmac_key\fR <hmac_key>
path to file containing key (For FS4 image
only).
.TP
\fB\-\-key_uuid2\fR <uuid_file>
UUID matching the given private key to be
used by the sign command
.PP
COMMANDS SUMMARY
.TP
burn|b \fB\-ir\fR
Burn flash. Use "\-ir burn" flag to perform
.IP
image reactivation prior burning.
.TP
query|q [full]
Query misc. flash/firmware characteristics,
.IP
use "full" to get more information.
.TP
verify|v [showitoc]
Verify entire flash, use "showitoc" to see
.IP
ITOC headers in FS3/FS4 image only.
.TP
swreset
SW reset the target switch device.This
.IP
command is supported only in the In\-Band
access method.
.TP
brom
<ROM\-file>                            : Burn the specified ROM file on the flash.
.TP
drom
Remove the ROM section from the flash.
.TP
rrom
<out\-file>                            : Read the ROM section from the flash.
.TP
bb
Burn Block \- Burns the given image as is. No
.IP
checks are done.
.TP
sg
[guids_num=<num|num_port1,num_port2>
.IP
step_size=<size|size_port1,size_port2>] |
[nocrc]                                      : Set GUIDs.
sv                                           : Set the VSD.
ri   <out\-file>                              : Read the fw image on the flash.
dc   [out\-file]                              : Dump Configuration: print fw configuration
.IP
file for the given image.
.TP
dh
[out\-file]                              : Dump Hash: dump the hash if it is integrated
.IP
in the FW image
.TP
set_key
[key]                              : Set/Update the HW access key which is used to
.TP
enable/disable access to HW.
The key can be provided in the command line
or interactively typed after the command is
given
NOTE: The new key is activated only after
the device is reset.
.TP
hw_access
<enable|disable> [key]           : Enable/disable the access to the HW.
.TP
The key can be provided in the command line
or interactively typed after the command is
given
.TP
hw
query                                   : Query HW info and flash attributes.
.TP
erase|e <addr>
Erases sector.
.TP
rw
<addr>                                  : Read one dword from flash
.TP
ww
<addr> <data>                           : Write one dword to flash
.TP
wwne
<addr> <data>                         : Write one dword to flash without sector
.IP
erase
.TP
wbne
<addr> <size> <data ...>              : Write a data block to flash without sector
.IP
erase.
.TP
wb
<data\-file> <addr>                      : Write a data block to flash.
.TP
rb
<addr> <size> [out\-file]                : Read  a data block from flash
.TP
clear_semaphore
Clear flash semaphore.
.TP
qrom
query ROM image.
.TP
checksum|cs
perform MD5 checksum on FW.
.IP
timestamp|ts <set|query|reset> [timestamp]
[FW version]                                 : FW time stamping.
cache_image|ci                               : cache FW image(Windows only).
sign                                         : Sign firmware image file
sign_with_hmac                               : Sign image with HMAC
set_public_keys   [public keys binary file]  : Set Public Keys (For FS3/FS4 image only).
set_forbidden_versions   [forbidden versions
binary file]                                 : Set Forbidden Versions (For FS3/FS4 image
.IP
only).
.TP
image_reactivate|ir
: Reactivate previous flash image. For FW
.IP
controlled devices only.
.TP
binary_compare|bc
: Binary compare between device firmware and
.IP
given BIN file. If there is a silent mode,
no progress is displayed.
.SH
RETURN VALUES
.TP
0
Successful completion.
.TP
1
An error has occurred.
.TP
7
For burn command \- FW already updated \- burn
was aborted.
.SH "SEE ALSO"
.B mstarchive(1)
